<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <p>promise test</p>

    
    <!--// https://www.bootcdn.cn 稳定、快速、免费的前端开源项目 CDN 加速服务 -->
    <!-- <script src="https://cdn.bootcss.com/bluebird/3.5.5/bluebird.min.js"></script> -->
    <script>
        function loadImg(src){
            const promise=new Promise(function(resolve,reject){
                var img=document.createElement('img')
                // throw new Error('自定义错误')
                img.onload=function(){
                    resolve(img)
                }
                img.onerror=function(){
                    reject('图片加载失败')
                }
                img.src=src
            })
            return promise
        }


        var src1="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1753005157,3674462175&fm=26&gp=0.jpg"
        var result1=loadImg(src1)
        var src2="http://img0.imgtn.bdimg.com/it/u=2067184487,2377726991&fm=11&gp=0.jpg"
        var result2=loadImg(src2)

        //Promise.all 接收一个Promise对象的数组
        //待全部完成之后，统一执行success
        Promise.all([result1,result2]).then(datas=>{
            //接收到的datas是一个数组 依次包含了多个promise返回的内容
            console.log(datas[0])
            console.log(datas[1])
        })


<<<<<<< HEAD
        //promise.all 接收一个promise对象数组
        Promise.all([result1,result2]).then(function(datas){
            console.log('all',datas[0])
            console.log('all',datas[1])
        })

        Promise.race([result1,result2]).then(function(data){
            console.log('race',data)

=======
        //Promise.all 接收一个Promise对象的数组
        //只要有一个完成之后，统一执行success
        Promise.race([result1,result2]).then(data=>{
            //data即最先执行完成的 promise的返回值
            console.log(data)
>>>>>>> f0bfae47116dea21e68524ee1da93235b7981ebe
        })
    
    </script>
</body>
</html>